import router from './router'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
import store from '@/store'

NProgress.configure({ showSpinner: false })
const whiteList = ['/login', '/404'] // 白名单,无需登录,就可以跳转查看的路由地址

router.beforeEach(async (to, from, next) => {
  NProgress.start()

  const token = store.getters.token
  if (token) {
    // 登录了
    if (to.path === '/login') {
      // 去首页
      // 中断要跳转/login这次导航,重新跳转到首页'/'
      next('/')
      NProgress.done()
    } else {
      // 去别的页面
      next()
    }
  } else {
    // 没有登录
    if (whiteList.includes(to.path)) {
      // 要去的路由地址字符串,是否在白名单数组里出现过,出现过就放行
      next()
    } else {
      // 去别的页面(内部项目,不登录,别的页面不能去)
      next('/login')
      NProgress.done()
    }
  }
})
// 验证下 删除本地token刷新是否能走到最后一个else
router.afterEach(() => {
  // 正常next()放行了跳转了,才会走后置守卫,关闭正常流程进度条
  NProgress.done()
})
